import java.io.File;
import java.util.Scanner;

// 扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），并且后续询问用户是否要删除该文件
public class Test1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入要扫描的路径:");
        String rootPath = scanner.next();
        System.out.println("请输入要搜索的文件名关键字:");
        String word = scanner.next();

        // 验证用户输入是否合法
        if(word.isEmpty()){
            System.out.println("输入的关键字为空!");
            return;
        }
        // 文件系统操作 => File
        File rootFile = new File(rootPath);
        if(!rootFile.isDirectory()){
            // 路径不存在或者路径对应的是普通文件.
            System.out.println("路径输入有误!");
            return;
        }
        // 开始搜索
        search(rootFile,word);
    }

    private static void search(File rootFile, String word) {
        // 列出 rootFile 内部的内容
        File[] files = rootFile.listFiles();
        if(files == null){
            return;
        }
        for(File file : files){
            // 判断当前 file 是否是文件
            if(file.isFile()){
                // 判断当前文件名是否包含 word
                tryDelete(file,word);
            }else if(file.isDirectory()){
                // 对子目录进行递归
                search(file,word);
            }
        }
    }

    private static void tryDelete(File file, String word) {
        Scanner scanner = new Scanner(System.in);
        if(file.getName().contains(word)){
            System.out.println("找到文件" + file.getAbsolutePath());
            System.out.println("是否要删除: (Y/N)");
            String choice = scanner.next();
            if(choice.equals("Y") || choice.equals("y")){
                file.delete();
            }else {
                System.out.println("取消删除");
            }
        }
    }
}
